/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Service;

import DB.EnlaceProfesionalPaciente;
import DB.HibernateUtil;
import DB.Paciente;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Franzel
 */
@WebService()
public class EnlaceProfesionalPacienteWS {
    /**
     * Web service operation
     */
    @WebMethod(operationName = "agregarEnlaceProfesionalPaciente")
    public boolean agregarEnlaceProfesionalPaciente(@WebParam(name = "rutProfesional")String rutProfesional,
                                                    @WebParam(name = "rutPaciente")String rutPaciente) {

        EnlaceProfesionalPaciente enlace= new EnlaceProfesionalPaciente();
        enlace.setRutProfesional(rutProfesional);
        enlace.setRutPaciente(rutPaciente);
        enlace.setActivo(true);
        return ControladorDeObjetos.saveObject(enlace);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "listarEnlaceProfesionalPacientes")
    public List<EnlaceProfesionalPaciente> listarEnlaceProfesionalPacientes() {
        //TODO write your implementation code here:
        return ControladorDeObjetos.getAllObjectByClassType(EnlaceProfesionalPaciente.class);
    }

     /**
     * Web service operation
     */
    @WebMethod(operationName = "modificarEnlaceProfesionalPaciente")
    public boolean modificarEnlaceProfesionalPaciente(@WebParam(name = "rutProfesional")String rutProfesional,
                                                    @WebParam(name = "rutPaciente")String rutPaciente,
                                                    @WebParam(name = "activo")boolean activo ) {

        EnlaceProfesionalPaciente enlace= new EnlaceProfesionalPaciente();
        enlace.setRutProfesional(rutProfesional);
        enlace.setRutPaciente(rutPaciente);
        enlace.setActivo(true);
        return ControladorDeObjetos.updateObject(enlace);
    }
    @WebMethod(operationName = "isPacienteEnlazadoAProfesional")
    public boolean isPacienteEnlazadoAProfesional(@WebParam(name = "rutPaciente")String rutPaciente, @WebParam(name = "rutProfesional")String rutProfesional ) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        Transaction trans = session.beginTransaction();
        Query q = session.createQuery("from EnlaceProfesionalPaciente e where e.rutProfesional='"+rutProfesional+"' and e.rutPaciente='"+rutPaciente+"'");                         
        if(q.list().isEmpty())
            return false;
        return true;
    }
   

}
